package com.young.ums.service;

import com.young.common.util.Page;
import com.young.ums.model.NavigateButton;
import java.util.List;

/**
* 导航按钮关联信息服务接口
* Created by imrookie on 2018-10-28.
*/
public interface INavigateButtonService {

    /**
     * 查询
     * @param obj
     * @return
     */
    List<NavigateButton> getList(NavigateButton obj);

    /**
     * 分页查询
     * @param obj
     * @param page
     * @return
     */
    List<NavigateButton> getPage(NavigateButton obj, Page page);

    /**
     * 查询单条
     * @param id
     * @return
     */
    NavigateButton get(String id);

    /**
     * 统计数量
     * @param obj
     * @return Integer 满足xx条件的数据有多少条
     */
    int count(NavigateButton obj);

    /**
     * 修改
     * @param obj
     * @return
     */
    int update(NavigateButton obj);

    /**
     * 删除
     * @param id
     * @return
     */
    int delete(String id);

    /**
     * 根据按钮id批量删除
     * @param buttonId
     * @return
     */
    int deleteByButtonId(String buttonId);

    /**
     * 根据资源id批量删除
     * @param navigateId
     * @return
     */
    int deleteByNavigateId(String navigateId);

    /**
     * 批量删除
     * @param idArr
     * @return
     */
    int delete(String[] idArr);

    /**
     * 根据导航id和按钮id删除关联关系
     * @param navigateId 导航id
     * @param buttonId 按钮id
     * @return
     */
    int deleteByNavigateIdAndButtonId(String navigateId, String buttonId);

    /**
     * 插入
     * @param obj
     * @return
     */
    int insert(NavigateButton obj);

    /**
     * 批量插入
     * @param list
     * @return
     */
    int batchInsert(List<NavigateButton> list);

    /**
     * 根据导航id查询关联的按钮id
     * @param navigateId 导航id
     * @return
     */
    List<String> getButtonIdsByNavigateId(String navigateId);

    /**
     * 根据按钮id查询关联的导航id
     * @param buttonId 按钮id
     * @return
     */
    List<String> getNavigateIdsByButtonId(String buttonId);

    /**
     * 批量关联按钮到导航
     * @param navigateId 导航id
     * @param buttonIds 按钮id数组
     */
    int relevanceButton2Navigate(String navigateId, String[] buttonIds);

    /**
     * 判断是否存在关联关系
     * @param navigateId 导航id
     * @param buttonId 按钮id
     * @return
     */
    boolean isRelevanced(String navigateId, String buttonId);
}